package com.ruoyi.business.service.impl;

import java.util.List;

import com.ruoyi.business.tool.UserInfoTool;
import com.ruoyi.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.business.mapper.AcPayfeesInfoMapper;
import com.ruoyi.business.domain.AcPayfeesInfo;
import com.ruoyi.business.service.IAcPayfeesInfoService;

/**
 * 租金缴费统计Service业务层处理
 *
 * @author ruoyi
 * @date 2025-02-20
 */
@Service
public class AcPayfeesInfoServiceImpl implements IAcPayfeesInfoService
{
    @Autowired
    private AcPayfeesInfoMapper acPayfeesInfoMapper;

    @Autowired
    private UserInfoTool userInfoTool;


    /**
     * 查询租金缴费统计
     *
     * @param payfId 租金缴费统计主键
     * @return 租金缴费统计
     */
    @Override
    public AcPayfeesInfo selectAcPayfeesInfoByPayfId(Long payfId)
    {
        return acPayfeesInfoMapper.selectAcPayfeesInfoByPayfId(payfId);
    }

    /**
     * 查询租金缴费统计列表
     *
     * @param acPayfeesInfo 租金缴费统计
     * @return 租金缴费统计
     */
    @Override
    public List<AcPayfeesInfo> selectAcPayfeesInfoList(AcPayfeesInfo acPayfeesInfo)
    {
        acPayfeesInfo.setDeptId(userInfoTool.getUserDeptId());
        acPayfeesInfo.setPayfIsDelete(0);
        acPayfeesInfo.setDelFlag("0");
        return acPayfeesInfoMapper.selectAcPayfeesInfoList(acPayfeesInfo);
    }

    @Override
    public List<AcPayfeesInfo> selectAcPayfeesInfoMonthList(AcPayfeesInfo acPayfeesInfo)
    {
        acPayfeesInfo.setDeptId(userInfoTool.getUserDeptId());
        acPayfeesInfo.setPayfIsDelete(0);
        acPayfeesInfo.setDelFlag("0");
        return acPayfeesInfoMapper.selectAcPayfeesInfoMonthList(acPayfeesInfo);
    }


    @Override
    public List<AcPayfeesInfo> selectAcPayfeesInfoSeasonList(AcPayfeesInfo acPayfeesInfo)
    {
        acPayfeesInfo.setDeptId(userInfoTool.getUserDeptId());
        acPayfeesInfo.setPayfIsDelete(0);
        acPayfeesInfo.setDelFlag("0");
        return acPayfeesInfoMapper.selectAcPayfeesInfoSeasonList(acPayfeesInfo);
    }




    /**
     * 新增租金缴费统计
     *
     * @param acPayfeesInfo 租金缴费统计
     * @return 结果
     */
    @Override
    public int insertAcPayfeesInfo(AcPayfeesInfo acPayfeesInfo)
    {
        acPayfeesInfo.setCreateTime(DateUtils.getNowDate());
        acPayfeesInfo.setPayfIsDelete(0);
        acPayfeesInfo.setDelFlag("0");
        acPayfeesInfo.setCreateBy(userInfoTool.getUserName());
        acPayfeesInfo.setDeptId(userInfoTool.getUserDeptId());
        return acPayfeesInfoMapper.insertAcPayfeesInfo(acPayfeesInfo);
    }

    /**
     * 修改租金缴费统计
     *
     * @param acPayfeesInfo 租金缴费统计
     * @return 结果
     */
    @Override
    public int updateAcPayfeesInfo(AcPayfeesInfo acPayfeesInfo)
    {
        acPayfeesInfo.setUpdateTime(DateUtils.getNowDate());
        acPayfeesInfo.setUpdateBy(userInfoTool.getUserName());
        return acPayfeesInfoMapper.updateAcPayfeesInfo(acPayfeesInfo);
    }

    /**
     * 批量删除租金缴费统计
     *
     * @param payfIds 需要删除的租金缴费统计主键
     * @return 结果
     */
    @Override
    public int deleteAcPayfeesInfoByPayfIds(Long[] payfIds)
    {
        return acPayfeesInfoMapper.deleteAcPayfeesInfoByPayfIds(payfIds);
    }

    /**
     * 删除租金缴费统计信息
     *
     * @param payfId 租金缴费统计主键
     * @return 结果
     */
    @Override
    public int deleteAcPayfeesInfoByPayfId(Long payfId)
    {
        return acPayfeesInfoMapper.deleteAcPayfeesInfoByPayfId(payfId);
    }

    @Override
    public List<AcPayfeesInfo> selectRentIncome() {
        return  acPayfeesInfoMapper.selectRentIncome();
    }

    @Override
    public List<AcPayfeesInfo> selectRentTimeliness() {
        return  acPayfeesInfoMapper.selectRentTimeliness();
    }

    @Override
    public List<AcPayfeesInfo> selectRentIncomeProportion() {
        return  acPayfeesInfoMapper.selectRentIncomeProportion();
    }

    @Override
    public List<AcPayfeesInfo> selectRentDelayTime() {
        return  acPayfeesInfoMapper.selectRentDelayTime();
    }

    @Override
    public List<AcPayfeesInfo> selectRentIncomeExpenditure() {
        return  acPayfeesInfoMapper.selectRentIncomeExpenditure();
    }

    @Override
    public List<AcPayfeesInfo> selectRentDeposit() {
        return  acPayfeesInfoMapper.selectRentDeposit();
    }
}
